// 转义特殊字符
function htmlSafe(value) {
	return value.replace(/&gt;/g, '>')
		.replace(/&lt;/g, '<')
		.replace(/&amp;/g, '&')
		.replace(/&apos;/g, '\'')
		.replace(/&quot;/g, '"')
}

// 转化日期
function dateFormat(datestr, formatstr) {
	let datetemp = new Date(datestr)
	if (isNaN(datetemp.getTime()) || datetemp.getTime() === 0) {
		return ''
	}
	if (!formatstr) {
		formatstr = 'yyyy-MM-dd HH:mm:ss'
	}
	let dateyear = datetemp.getFullYear()
	let datemonth = datetemp.getMonth() + 1
	let dateday = datetemp.getDate()
	let datehour = datetemp.getHours()
	let dateminute = datetemp.getMinutes()
	let datesecond = datetemp.getSeconds()
	let datemillisecond = datetemp.getMilliseconds()
	// js中string.replace(str, "") ----> 只替换1个
	// string.replace(/str/g, "") ----> 全局替换
	return formatstr.replace(/[Yy]{2,4}/g, dateyear)
		.replace(/[M]{1,2}/g, datemonth)
		.replace(/[Dd]{1,2}/g, dateday)
		.replace(/[Hh]{1,2}/g, datehour)
		.replace(/[m]{1,2}/g, dateminute)
		.replace(/[s]{1,2}/g, datesecond)
		.replace(/(ms){1}/g, datemillisecond)
}

// 截取字符串，如果长度超出加省略号
function transword(str, len) {
	if (isNaN(len) || !str) {
		return str
	} else {
		if (str.length > len) {
			return str.substr(0, len) + '...'
		} else {
			return str
		}
	}
}

// 判断时间，显示多少秒，多少分钟，多少小时，多少天前
function timeLapses(datestr) {
	let datetemp
	try {
		datetemp = new Date(datestr)
	}
	catch (err) {
		return ""
	}
	if (isNaN(datetemp.getTime()) || datetemp.getTime() === 0) {
		return ''
	}
	let nowd = new Date()
	let timeSub = nowd.getTime() - datetemp.getTime();
	if (timeSub <= 60000) {
		return parseInt(timeSub / 1000) + '秒前'
	}
	else if (timeSub <= 3600000) {
		return parseInt(timeSub / 60000) + '分钟前'
	}
	else if (timeSub <= 86400000) {
		return parseInt(timeSub / 3600000) + '小时前'
	}
	else if (timeSub <= 2592000000) {
		return parseInt(timeSub / 86400000) + '天前'
	}
	else {
		return parseInt(timeSub / 2592000000) + '个月前'
	}
}


export {
	htmlSafe,
	dateFormat,
	transword,
	timeLapses
}
